package net.edu_soft.ec.asset.pojo;

import java.util.ArrayList;
import java.util.List;

public class ProductDetailExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public ProductDetailExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andProductDetailIdIsNull() {
            addCriterion("product_detail_id is null");
            return (Criteria) this;
        }

        public Criteria andProductDetailIdIsNotNull() {
            addCriterion("product_detail_id is not null");
            return (Criteria) this;
        }

        public Criteria andProductDetailIdEqualTo(Integer value) {
            addCriterion("product_detail_id =", value, "productDetailId");
            return (Criteria) this;
        }

        public Criteria andProductDetailIdNotEqualTo(Integer value) {
            addCriterion("product_detail_id <>", value, "productDetailId");
            return (Criteria) this;
        }

        public Criteria andProductDetailIdGreaterThan(Integer value) {
            addCriterion("product_detail_id >", value, "productDetailId");
            return (Criteria) this;
        }

        public Criteria andProductDetailIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("product_detail_id >=", value, "productDetailId");
            return (Criteria) this;
        }

        public Criteria andProductDetailIdLessThan(Integer value) {
            addCriterion("product_detail_id <", value, "productDetailId");
            return (Criteria) this;
        }

        public Criteria andProductDetailIdLessThanOrEqualTo(Integer value) {
            addCriterion("product_detail_id <=", value, "productDetailId");
            return (Criteria) this;
        }

        public Criteria andProductDetailIdIn(List<Integer> values) {
            addCriterion("product_detail_id in", values, "productDetailId");
            return (Criteria) this;
        }

        public Criteria andProductDetailIdNotIn(List<Integer> values) {
            addCriterion("product_detail_id not in", values, "productDetailId");
            return (Criteria) this;
        }

        public Criteria andProductDetailIdBetween(Integer value1, Integer value2) {
            addCriterion("product_detail_id between", value1, value2, "productDetailId");
            return (Criteria) this;
        }

        public Criteria andProductDetailIdNotBetween(Integer value1, Integer value2) {
            addCriterion("product_detail_id not between", value1, value2, "productDetailId");
            return (Criteria) this;
        }

        public Criteria andProductIdIsNull() {
            addCriterion("product_id is null");
            return (Criteria) this;
        }

        public Criteria andProductIdIsNotNull() {
            addCriterion("product_id is not null");
            return (Criteria) this;
        }

        public Criteria andProductIdEqualTo(Integer value) {
            addCriterion("product_id =", value, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdNotEqualTo(Integer value) {
            addCriterion("product_id <>", value, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdGreaterThan(Integer value) {
            addCriterion("product_id >", value, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdGreaterThanOrEqualTo(Integer value) {
            addCriterion("product_id >=", value, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdLessThan(Integer value) {
            addCriterion("product_id <", value, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdLessThanOrEqualTo(Integer value) {
            addCriterion("product_id <=", value, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdIn(List<Integer> values) {
            addCriterion("product_id in", values, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdNotIn(List<Integer> values) {
            addCriterion("product_id not in", values, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdBetween(Integer value1, Integer value2) {
            addCriterion("product_id between", value1, value2, "productId");
            return (Criteria) this;
        }

        public Criteria andProductIdNotBetween(Integer value1, Integer value2) {
            addCriterion("product_id not between", value1, value2, "productId");
            return (Criteria) this;
        }

        public Criteria andSysLanguageIsNull() {
            addCriterion("sys_language is null");
            return (Criteria) this;
        }

        public Criteria andSysLanguageIsNotNull() {
            addCriterion("sys_language is not null");
            return (Criteria) this;
        }

        public Criteria andSysLanguageEqualTo(String value) {
            addCriterion("sys_language =", value, "sysLanguage");
            return (Criteria) this;
        }

        public Criteria andSysLanguageNotEqualTo(String value) {
            addCriterion("sys_language <>", value, "sysLanguage");
            return (Criteria) this;
        }

        public Criteria andSysLanguageGreaterThan(String value) {
            addCriterion("sys_language >", value, "sysLanguage");
            return (Criteria) this;
        }

        public Criteria andSysLanguageGreaterThanOrEqualTo(String value) {
            addCriterion("sys_language >=", value, "sysLanguage");
            return (Criteria) this;
        }

        public Criteria andSysLanguageLessThan(String value) {
            addCriterion("sys_language <", value, "sysLanguage");
            return (Criteria) this;
        }

        public Criteria andSysLanguageLessThanOrEqualTo(String value) {
            addCriterion("sys_language <=", value, "sysLanguage");
            return (Criteria) this;
        }

        public Criteria andSysLanguageLike(String value) {
            addCriterion("sys_language like", value, "sysLanguage");
            return (Criteria) this;
        }

        public Criteria andSysLanguageNotLike(String value) {
            addCriterion("sys_language not like", value, "sysLanguage");
            return (Criteria) this;
        }

        public Criteria andSysLanguageIn(List<String> values) {
            addCriterion("sys_language in", values, "sysLanguage");
            return (Criteria) this;
        }

        public Criteria andSysLanguageNotIn(List<String> values) {
            addCriterion("sys_language not in", values, "sysLanguage");
            return (Criteria) this;
        }

        public Criteria andSysLanguageBetween(String value1, String value2) {
            addCriterion("sys_language between", value1, value2, "sysLanguage");
            return (Criteria) this;
        }

        public Criteria andSysLanguageNotBetween(String value1, String value2) {
            addCriterion("sys_language not between", value1, value2, "sysLanguage");
            return (Criteria) this;
        }

        public Criteria andSupportSysIsNull() {
            addCriterion("support_sys is null");
            return (Criteria) this;
        }

        public Criteria andSupportSysIsNotNull() {
            addCriterion("support_sys is not null");
            return (Criteria) this;
        }

        public Criteria andSupportSysEqualTo(String value) {
            addCriterion("support_sys =", value, "supportSys");
            return (Criteria) this;
        }

        public Criteria andSupportSysNotEqualTo(String value) {
            addCriterion("support_sys <>", value, "supportSys");
            return (Criteria) this;
        }

        public Criteria andSupportSysGreaterThan(String value) {
            addCriterion("support_sys >", value, "supportSys");
            return (Criteria) this;
        }

        public Criteria andSupportSysGreaterThanOrEqualTo(String value) {
            addCriterion("support_sys >=", value, "supportSys");
            return (Criteria) this;
        }

        public Criteria andSupportSysLessThan(String value) {
            addCriterion("support_sys <", value, "supportSys");
            return (Criteria) this;
        }

        public Criteria andSupportSysLessThanOrEqualTo(String value) {
            addCriterion("support_sys <=", value, "supportSys");
            return (Criteria) this;
        }

        public Criteria andSupportSysLike(String value) {
            addCriterion("support_sys like", value, "supportSys");
            return (Criteria) this;
        }

        public Criteria andSupportSysNotLike(String value) {
            addCriterion("support_sys not like", value, "supportSys");
            return (Criteria) this;
        }

        public Criteria andSupportSysIn(List<String> values) {
            addCriterion("support_sys in", values, "supportSys");
            return (Criteria) this;
        }

        public Criteria andSupportSysNotIn(List<String> values) {
            addCriterion("support_sys not in", values, "supportSys");
            return (Criteria) this;
        }

        public Criteria andSupportSysBetween(String value1, String value2) {
            addCriterion("support_sys between", value1, value2, "supportSys");
            return (Criteria) this;
        }

        public Criteria andSupportSysNotBetween(String value1, String value2) {
            addCriterion("support_sys not between", value1, value2, "supportSys");
            return (Criteria) this;
        }

        public Criteria andIntroduceIsNull() {
            addCriterion("introduce is null");
            return (Criteria) this;
        }

        public Criteria andIntroduceIsNotNull() {
            addCriterion("introduce is not null");
            return (Criteria) this;
        }

        public Criteria andIntroduceEqualTo(String value) {
            addCriterion("introduce =", value, "introduce");
            return (Criteria) this;
        }

        public Criteria andIntroduceNotEqualTo(String value) {
            addCriterion("introduce <>", value, "introduce");
            return (Criteria) this;
        }

        public Criteria andIntroduceGreaterThan(String value) {
            addCriterion("introduce >", value, "introduce");
            return (Criteria) this;
        }

        public Criteria andIntroduceGreaterThanOrEqualTo(String value) {
            addCriterion("introduce >=", value, "introduce");
            return (Criteria) this;
        }

        public Criteria andIntroduceLessThan(String value) {
            addCriterion("introduce <", value, "introduce");
            return (Criteria) this;
        }

        public Criteria andIntroduceLessThanOrEqualTo(String value) {
            addCriterion("introduce <=", value, "introduce");
            return (Criteria) this;
        }

        public Criteria andIntroduceLike(String value) {
            addCriterion("introduce like", value, "introduce");
            return (Criteria) this;
        }

        public Criteria andIntroduceNotLike(String value) {
            addCriterion("introduce not like", value, "introduce");
            return (Criteria) this;
        }

        public Criteria andIntroduceIn(List<String> values) {
            addCriterion("introduce in", values, "introduce");
            return (Criteria) this;
        }

        public Criteria andIntroduceNotIn(List<String> values) {
            addCriterion("introduce not in", values, "introduce");
            return (Criteria) this;
        }

        public Criteria andIntroduceBetween(String value1, String value2) {
            addCriterion("introduce between", value1, value2, "introduce");
            return (Criteria) this;
        }

        public Criteria andIntroduceNotBetween(String value1, String value2) {
            addCriterion("introduce not between", value1, value2, "introduce");
            return (Criteria) this;
        }

        public Criteria andFunctionsIsNull() {
            addCriterion("functions is null");
            return (Criteria) this;
        }

        public Criteria andFunctionsIsNotNull() {
            addCriterion("functions is not null");
            return (Criteria) this;
        }

        public Criteria andFunctionsEqualTo(String value) {
            addCriterion("functions =", value, "functions");
            return (Criteria) this;
        }

        public Criteria andFunctionsNotEqualTo(String value) {
            addCriterion("functions <>", value, "functions");
            return (Criteria) this;
        }

        public Criteria andFunctionsGreaterThan(String value) {
            addCriterion("functions >", value, "functions");
            return (Criteria) this;
        }

        public Criteria andFunctionsGreaterThanOrEqualTo(String value) {
            addCriterion("functions >=", value, "functions");
            return (Criteria) this;
        }

        public Criteria andFunctionsLessThan(String value) {
            addCriterion("functions <", value, "functions");
            return (Criteria) this;
        }

        public Criteria andFunctionsLessThanOrEqualTo(String value) {
            addCriterion("functions <=", value, "functions");
            return (Criteria) this;
        }

        public Criteria andFunctionsLike(String value) {
            addCriterion("functions like", value, "functions");
            return (Criteria) this;
        }

        public Criteria andFunctionsNotLike(String value) {
            addCriterion("functions not like", value, "functions");
            return (Criteria) this;
        }

        public Criteria andFunctionsIn(List<String> values) {
            addCriterion("functions in", values, "functions");
            return (Criteria) this;
        }

        public Criteria andFunctionsNotIn(List<String> values) {
            addCriterion("functions not in", values, "functions");
            return (Criteria) this;
        }

        public Criteria andFunctionsBetween(String value1, String value2) {
            addCriterion("functions between", value1, value2, "functions");
            return (Criteria) this;
        }

        public Criteria andFunctionsNotBetween(String value1, String value2) {
            addCriterion("functions not between", value1, value2, "functions");
            return (Criteria) this;
        }

        public Criteria andManualIsNull() {
            addCriterion("manual is null");
            return (Criteria) this;
        }

        public Criteria andManualIsNotNull() {
            addCriterion("manual is not null");
            return (Criteria) this;
        }

        public Criteria andManualEqualTo(String value) {
            addCriterion("manual =", value, "manual");
            return (Criteria) this;
        }

        public Criteria andManualNotEqualTo(String value) {
            addCriterion("manual <>", value, "manual");
            return (Criteria) this;
        }

        public Criteria andManualGreaterThan(String value) {
            addCriterion("manual >", value, "manual");
            return (Criteria) this;
        }

        public Criteria andManualGreaterThanOrEqualTo(String value) {
            addCriterion("manual >=", value, "manual");
            return (Criteria) this;
        }

        public Criteria andManualLessThan(String value) {
            addCriterion("manual <", value, "manual");
            return (Criteria) this;
        }

        public Criteria andManualLessThanOrEqualTo(String value) {
            addCriterion("manual <=", value, "manual");
            return (Criteria) this;
        }

        public Criteria andManualLike(String value) {
            addCriterion("manual like", value, "manual");
            return (Criteria) this;
        }

        public Criteria andManualNotLike(String value) {
            addCriterion("manual not like", value, "manual");
            return (Criteria) this;
        }

        public Criteria andManualIn(List<String> values) {
            addCriterion("manual in", values, "manual");
            return (Criteria) this;
        }

        public Criteria andManualNotIn(List<String> values) {
            addCriterion("manual not in", values, "manual");
            return (Criteria) this;
        }

        public Criteria andManualBetween(String value1, String value2) {
            addCriterion("manual between", value1, value2, "manual");
            return (Criteria) this;
        }

        public Criteria andManualNotBetween(String value1, String value2) {
            addCriterion("manual not between", value1, value2, "manual");
            return (Criteria) this;
        }

        public Criteria andUpdateLogIsNull() {
            addCriterion("update_log is null");
            return (Criteria) this;
        }

        public Criteria andUpdateLogIsNotNull() {
            addCriterion("update_log is not null");
            return (Criteria) this;
        }

        public Criteria andUpdateLogEqualTo(String value) {
            addCriterion("update_log =", value, "updateLog");
            return (Criteria) this;
        }

        public Criteria andUpdateLogNotEqualTo(String value) {
            addCriterion("update_log <>", value, "updateLog");
            return (Criteria) this;
        }

        public Criteria andUpdateLogGreaterThan(String value) {
            addCriterion("update_log >", value, "updateLog");
            return (Criteria) this;
        }

        public Criteria andUpdateLogGreaterThanOrEqualTo(String value) {
            addCriterion("update_log >=", value, "updateLog");
            return (Criteria) this;
        }

        public Criteria andUpdateLogLessThan(String value) {
            addCriterion("update_log <", value, "updateLog");
            return (Criteria) this;
        }

        public Criteria andUpdateLogLessThanOrEqualTo(String value) {
            addCriterion("update_log <=", value, "updateLog");
            return (Criteria) this;
        }

        public Criteria andUpdateLogLike(String value) {
            addCriterion("update_log like", value, "updateLog");
            return (Criteria) this;
        }

        public Criteria andUpdateLogNotLike(String value) {
            addCriterion("update_log not like", value, "updateLog");
            return (Criteria) this;
        }

        public Criteria andUpdateLogIn(List<String> values) {
            addCriterion("update_log in", values, "updateLog");
            return (Criteria) this;
        }

        public Criteria andUpdateLogNotIn(List<String> values) {
            addCriterion("update_log not in", values, "updateLog");
            return (Criteria) this;
        }

        public Criteria andUpdateLogBetween(String value1, String value2) {
            addCriterion("update_log between", value1, value2, "updateLog");
            return (Criteria) this;
        }

        public Criteria andUpdateLogNotBetween(String value1, String value2) {
            addCriterion("update_log not between", value1, value2, "updateLog");
            return (Criteria) this;
        }

        public Criteria andConfigInfoIsNull() {
            addCriterion("config_info is null");
            return (Criteria) this;
        }

        public Criteria andConfigInfoIsNotNull() {
            addCriterion("config_info is not null");
            return (Criteria) this;
        }

        public Criteria andConfigInfoEqualTo(String value) {
            addCriterion("config_info =", value, "configInfo");
            return (Criteria) this;
        }

        public Criteria andConfigInfoNotEqualTo(String value) {
            addCriterion("config_info <>", value, "configInfo");
            return (Criteria) this;
        }

        public Criteria andConfigInfoGreaterThan(String value) {
            addCriterion("config_info >", value, "configInfo");
            return (Criteria) this;
        }

        public Criteria andConfigInfoGreaterThanOrEqualTo(String value) {
            addCriterion("config_info >=", value, "configInfo");
            return (Criteria) this;
        }

        public Criteria andConfigInfoLessThan(String value) {
            addCriterion("config_info <", value, "configInfo");
            return (Criteria) this;
        }

        public Criteria andConfigInfoLessThanOrEqualTo(String value) {
            addCriterion("config_info <=", value, "configInfo");
            return (Criteria) this;
        }

        public Criteria andConfigInfoLike(String value) {
            addCriterion("config_info like", value, "configInfo");
            return (Criteria) this;
        }

        public Criteria andConfigInfoNotLike(String value) {
            addCriterion("config_info not like", value, "configInfo");
            return (Criteria) this;
        }

        public Criteria andConfigInfoIn(List<String> values) {
            addCriterion("config_info in", values, "configInfo");
            return (Criteria) this;
        }

        public Criteria andConfigInfoNotIn(List<String> values) {
            addCriterion("config_info not in", values, "configInfo");
            return (Criteria) this;
        }

        public Criteria andConfigInfoBetween(String value1, String value2) {
            addCriterion("config_info between", value1, value2, "configInfo");
            return (Criteria) this;
        }

        public Criteria andConfigInfoNotBetween(String value1, String value2) {
            addCriterion("config_info not between", value1, value2, "configInfo");
            return (Criteria) this;
        }

        public Criteria andProFileIsNull() {
            addCriterion("pro_file is null");
            return (Criteria) this;
        }

        public Criteria andProFileIsNotNull() {
            addCriterion("pro_file is not null");
            return (Criteria) this;
        }

        public Criteria andProFileEqualTo(String value) {
            addCriterion("pro_file =", value, "proFile");
            return (Criteria) this;
        }

        public Criteria andProFileNotEqualTo(String value) {
            addCriterion("pro_file <>", value, "proFile");
            return (Criteria) this;
        }

        public Criteria andProFileGreaterThan(String value) {
            addCriterion("pro_file >", value, "proFile");
            return (Criteria) this;
        }

        public Criteria andProFileGreaterThanOrEqualTo(String value) {
            addCriterion("pro_file >=", value, "proFile");
            return (Criteria) this;
        }

        public Criteria andProFileLessThan(String value) {
            addCriterion("pro_file <", value, "proFile");
            return (Criteria) this;
        }

        public Criteria andProFileLessThanOrEqualTo(String value) {
            addCriterion("pro_file <=", value, "proFile");
            return (Criteria) this;
        }

        public Criteria andProFileLike(String value) {
            addCriterion("pro_file like", value, "proFile");
            return (Criteria) this;
        }

        public Criteria andProFileNotLike(String value) {
            addCriterion("pro_file not like", value, "proFile");
            return (Criteria) this;
        }

        public Criteria andProFileIn(List<String> values) {
            addCriterion("pro_file in", values, "proFile");
            return (Criteria) this;
        }

        public Criteria andProFileNotIn(List<String> values) {
            addCriterion("pro_file not in", values, "proFile");
            return (Criteria) this;
        }

        public Criteria andProFileBetween(String value1, String value2) {
            addCriterion("pro_file between", value1, value2, "proFile");
            return (Criteria) this;
        }

        public Criteria andProFileNotBetween(String value1, String value2) {
            addCriterion("pro_file not between", value1, value2, "proFile");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}